using System.Collections.Generic;
using UnityEngine;

namespace Gameplay.PVE.TurnBase
{
    public struct TbsSkillConfig
    {
        public int id;
        public string actionName;
        public string name;
        public float attackRange;
        public float moveToSpeed;//动作播放速度
        public int moveToDelayFrame;
        public int moveToFrame;
        public float moveBackSpeed;
        public int moveBackFrame;
        public int moveBackDelayFrame;
        public int moveBackStayFrame;
        public int storageFrame;
        public int castFrame;
        public int recoverFrame;
        public List<Vector3> castEvent;//对应帧上的元素
        public List<Vector3> effectEvent;//对应帧上播放的特效
        public int moveType;//0原地释放 1 移动到身边 2 移动到同一列的位置上攻击

        public int targetType;//0 敌方  1 我方
        public int targetSort;//0 随机  1 血量最低   2 血量最多  3  纵列  4  前排  5 后排
        public int targetNum;
        public int triggerType;//0 主动使用  1 回合开始时  2 回合结束时  3 行动开始时  4 行动结束时 5 收到伤害时 6 造成伤害时
        public int blackScreen;
        public int focus;

        public int cameraFrame;

        public string actionNameBefore;


        public int type;//0普通技能  1融合技能
        public int effect;
    }

    public class SkillPlayerActionFrame
    {
        public bool hasAction;
        public int frame;
        public string actionName;
    }

    public class SkillPlayerEventFrame
    {
        public int frame;
        public int elementId;
    }

    public class SkillPlayerMoveFrame
    {
        public int frame;
        public Vector3 position;
        public bool hasPosition;
        public Vector3 speed;
    }
    
    public struct TbsSkillPlayerConfig
    {
        public int id;
        public List<SkillPlayerActionFrame> actions;
        public List<SkillPlayerEventFrame> events;
        public List<SkillPlayerMoveFrame> moves;
    }
}